[How to] Checkbox :: Select one at a time

Posted by neo-nant on Stack Overflow See other posts from Stack Overflow or by neo-nant
Published on 2010-04-03T12:03:53Z Indexed on 2010/04/03 12:13 UTC
Read the original article Hit count: 421

Filed under:
|

This is the code section from inno setup.My intention is to make two Checkbox where at a time one is being selected. But this code return error when first checkbox is clicked.

[code]

procedure CheckBoxOnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if CheckBox.Checked then   ///error:"Could not call proc" [sud it be global if then how to or what to change?]
BEGIN
   CheckBox.State := cbUnchecked;
   Box2.State := cbChecked;
END else
BEGIN
   CheckBox.State := cbChecked;
   Box2.State := cbUnchecked;
END;
end;

procedure Box2OnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if Box2.Checked then              ///error:same
BEGIN
   CheckBox.State := cbChecked;
   Box2.State := cbUnchecked;
END else
BEGIN
   CheckBox.State := cbUnchecked;
   Box2.State := cbChecked;
END;
end;

procedure CreateTheWizardPages;
var
  Page: TWizardPage;
  Box2,CheckBox: TNewCheckBox;
begin
  { TButton and others }

  Page := CreateCustomPage(wpWelcome, '', '');

  CheckBox := TNewCheckBox.Create(Page);
  CheckBox.Top :=ScaleY(8)+ScaleX(50);
  CheckBox.Width := Page.SurfaceWidth;
  CheckBox.Height := ScaleY(17);
  CheckBox.Caption := 'Do this';
  CheckBox.Checked := True;
  CheckBox.OnClick := @CheckBoxOnClick;
  CheckBox.Parent := Page.Surface;

  Box2 := TNewCheckBox.Create(Page);
  Box2.Top :=ScaleY(8)+ScaleX(70);
  Box2.Width := Page.SurfaceWidth;
  Box2.Height := ScaleY(17);
  Box2.Caption := 'No,Thanks.';
  Box2.Checked := False;
  Box2.OnClick := @Box2OnClick;
  Box2.Parent := Page.Surface;
end;


procedure InitializeWizard();
//var
begin
  { Custom wizard pages }
  CreateTheWizardPages;
end;

Please tell me where to change..

© Stack Overflow or respective owner

Related posts about inno-setup

Related posts about innosetup